package ec.edu.ups.cidi.siia.plamdep.webcrawler.extractorlinks;
import java.util.ArrayList;
import java.util.List;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import ec.edu.ups.cidi.siia.plamdep.configuracion.ConfiguracionConexionWeb;
import ec.edu.ups.cidi.siia.plamdep.modelo.webcrawler.Bibliografia;
import ec.edu.ups.cidi.siia.plamdep.utils.Log;
import ec.edu.ups.cidi.siia.plamdep.webcrawler.descarga.HtmlUtils;

public class LinksOnlineBrowser implements IExtractorLinks
{
    private List<Bibliografia> resultados=new ArrayList<Bibliografia>(); //el listado de links encontrados
    private HtmlUtils utils=new HtmlUtils();

    public void sacaLinks(String html)
    {
    	Document doc = Jsoup.parse(html);
    	Elements lis=doc.getElementsByAttributeValue("class", "g");
    	
    	for(Element li:lis)
    	try{	
    		String href=li.getElementsByAttributeValue("class", "r").html();
    		href=HtmlUtils.contentBetween(href, "href=\"/browse.php?u=", "&amp;");
    		href=java.net.URLDecoder.decode(href,"UTF-8");
    		String resumen=li.getElementsByAttributeValue("class", "st").text().replaceAll("\n", "");
    		
    		if(href.length()>0)
            {       	
        				//Utils.log(null, Utils.MOD_WEBCRAWLER, Utils.LEVEL_MSG, LinksOnlineBrowser.class, "URL:"+href);
        				//Utils.log(null, Utils.MOD_WEBCRAWLER, Utils.LEVEL_MSG, LinksOnlineBrowser.class, "Resumen:"+resumen+"\n");

                    	this.resultados.add(new Bibliografia(href,resumen));
                    	if(resultados.size()>=ConfiguracionConexionWeb.limite_results)//limita el numero de resultados
                        	return;

                    
            }
    		
    	}catch (Exception e) {
			// TODO: handle exception
		}
    	
    	
    }
    
    public List<Bibliografia> getLinks() {
        return this.resultados;
    }
    
    public void setContenidoHTML(String html) {
        this.sacaLinks(html);    
    }
}